export interface WeatherData {
  temp_max: number;
  temp_min: number;
  temp_avg: number;
  humidity: number;
  rainfall: number;
}

export interface PowerData {
  timestamp: string;
  actual: number;
  predicted: number;
}

export interface TrendData {
  x: string;
  y1: number;
  y2: number;
}

export interface MetricsData {
  rmse: number;
  mae: number;
  prediction: number;
  capacity: number;
  trendData: TrendData[];
}

export interface ForecastData {
  name: string;
  mae: number;
  mape: number;
  rmse: number;
  r2: number;
}

// Mock数据
export const weatherData: WeatherData = {
  temp_max: 32,
  temp_min: 18,
  temp_avg: 25,
  humidity: 65.0,
  rainfall: 12
};

export const powerData: PowerData[] = Array.from({ length: 24 }, (_, i) => ({
  timestamp: `${i}:00`,
  actual: 100 + Math.random() * 50,
  predicted: 110 + Math.random() * 40
}));

export const metricsData: MetricsData = {
  rmse: 0.85,
  mae: 0.72,
  prediction: 850,
  capacity: 1000,
  trendData: Array.from({ length: 200 }, (_, i) => ({
    x: `${i % 24}:00`,
    y1: 800 + Math.random() * 200,
    y2: 850 + Math.random() * 150
  }))
};

export const forecastData: ForecastData[] = [
  { name: 'BiLSTM', mae: 197.511, mape: 2.545, rmse: 282.068, r2: 0.9785 },
  { name: 'VMD-BiLSTM', mae: 165.129, mape: 2.008, rmse: 187.528, r2: 0.9901 },
  { name: 'RIME-VMD-CNN', mae: 102.655, mape: 1.409, rmse: 135.462, r2: 0.9966 },
  { name: 'RIME-VMD-LSTM', mae: 89.856, mape: 1.282, rmse: 128.251, r2: 0.9941 },
  { name: 'RIME-VMD-BiLSTM', mae: 73.054, mape: 0.989, rmse: 97.542, r2: 0.9934 }
];
